package com.songlanyun.modules.recommendassist.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.songlanyun.common.drive.RootEntity;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;

/**
 * 推荐帮扶
 *
 * @author wuchao
 * @email songlanyun@gmail.com
 * @date 2022-08-06 09:24:43
 */
@Data
@TableName("yxt_recommend_assist")
public class RecommendAssistEntity extends RootEntity<Long, RecommendAssistEntity> implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @TableId
    private Long id;
    /**
     * 推荐人
     */
    private Long userId;
    /**
     * 推荐人姓名
     */
    @TableField(exist = false)
    private String recommendName;
    /**
     * 推荐人手机号
     */
    @TableField(exist = false)
    private String recommendMobile;
    /**
     * 真实姓名
     */
    @NotBlank(message = "真实姓名不能为空")
    @Length(min = 1, max = 30, message = "真实姓名长度在1-30个字")
    private String realName;
    /**
     * 联系电话
     */
    @NotBlank(message = "联系电话不能为空")
    @Length(min = 1, max = 30, message = "联系电话长度在1-30个字")
    private String phone;
    /**
     * 性别（0：男 1：女）
     */
    private Integer sex;
    /**
     * 年龄
     */
    private Integer age;
    /**
     * 身份证号
     */
    @Length(max = 30, message = "身份证号长度在30个字以内")
    private String idNumber;
    /**
     * 省名
     */
    @Length(max = 20, message = "省名长度在1-20个字")
    private String provinceName;
    /**
     * 省编号
     */
    @Length(max = 20, message = "省编号长度在20个字以内")
    private String provinceCode;
    /**
     * 市名
     */
    @Length(max = 20, message = "市名长度在20个字以内")
    private String cityName;
    /**
     * 市编号
     */
    @Length(max = 20, message = "市编号长度在20个字以内")
    private String cityCode;
    /**
     * 区名
     */
    @Length(max = 20, message = "区名长度在20个字以内")
    private String areaName;
    /**
     * 区编号
     */
    @Length(max = 20, message = "区编号长度在20个字以内")
    private String areaCode;
    /**
     * 详细地址
     */
    private String address;
    /**
     * 情况说明
     */
    @NotBlank(message = "情况说明不能为空")
    @Length(min = 1, max = 500, message = "情况说明长度在1-500个字")
    private String explanation;
    /**
     * 联系人
     */
    @Length(max = 30, message = "联系人长度在30个字以内")
    private String contacts;
    /**
     * 联系电话
     */
    @Length(max = 30, message = "联系电话长度在30个字以内")
    private String contactNumber;
    /**
     * 推荐时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 状态（0：待联系 1：已联系）
     */
    private Integer status;
    /**
     * 反馈结果
     */
    @Length(max = 500, message = "反馈结果长度在500个字以内")
    private String feedback;
    /**
     * 联系时间
     */
    private Date contactTime;

    @Override
    public Long getIdentity() {
        return this.getId();
    }
}
